package com.settlement.system.model.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import com.alibaba.excel.annotation.ExcelProperty;
import java.util.HashMap;
import java.util.Map;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* <p>
* 抖音结算单导入VO
* </p>
*
* @author huangrensen
* @since 2024-05-30
*/
@Schema
@Data
public class DyBillImportVo implements Serializable {
    @ExcelProperty(index = 0)
    private String settlementTime;
    @ExcelProperty(value = "订单号")
    private String orderNo;
    @ExcelProperty(value = "子订单号")
    private String subOrderNo;
    @ExcelProperty(value = "结算金额")
    private String settlementPrice;
    @ExcelProperty(value = "结算账户")
    private String settlementAccount;
    @ExcelProperty(value = "结算单类型")
    private String settlementType;
    @ExcelProperty(value = "有结算前退款")
    private String settlementRefund;
    @ExcelProperty(value = "下单时间")
    private String orderTime;
    @ExcelProperty(value = "商品ID")
    private String productId;
    @ExcelProperty(value = "商品数量")
    private String quantity;
    @ExcelProperty(value = "业务类型")
    private String businessType;
    @ExcelProperty(value = "订单类型")
    private String orderType;
    @ExcelProperty(value = "订单总价")
    private String orderAmount;
    @ExcelProperty(value = "商品总价")
    private String productAmount;
    @ExcelProperty(value = "运费")
    private String transportFee;
    @ExcelProperty(value = "店铺劵")
    private String preferential;
    @ExcelProperty(value = "结算前退款金额")
    private String settlementRefundAmount;
    @ExcelProperty(value = "平台补贴")
    private String preformSubsidy;
    @ExcelProperty(value = "达人补贴")
    private String drSubsidy;
    @ExcelProperty(value = "抖音支付补贴")
    private String dySubsidy;
    @ExcelProperty(value = "抖音月付营销补贴")
    private String dyMonthSubsidy;
    @ExcelProperty(value = "银行补贴")
    private String bankSubsidy;
    @ExcelProperty(value = "以旧换新抵扣")
    private String deduction;
    @ExcelProperty(value = "平台补贴运费")
    private String platformSubsidyFee;
    @ExcelProperty(value = "用户实付")
    private String buyAmount;
    @ExcelProperty(value = "收入合计")
    private String reiceveAmount;
    @ExcelProperty(value = "平台服务费")
    private String serviceAmount;
    @ExcelProperty(value = "达人佣金")
    private String commission;
    @ExcelProperty(value = "服务商佣金")
    private String carrierCommission;
    @ExcelProperty(value = "渠道分成")
    private String channelFee;
    @ExcelProperty(value = "招商服务费")
    private String investmentServiceFee;
    @ExcelProperty(value = "站外推广费")
    private String promotionFee;
    @ExcelProperty(value = "其他分成")
    private String otherFee;
    @ExcelProperty(value = "其他分成说明")
    private String otherFeeRemark;
    @ExcelProperty(value = "支出合计")
    private String payAmount;
    @ExcelProperty(value = "是否免佣")
    private String noCommission;
    @ExcelProperty(value = "免佣金额")
    private String noCommissionAmount;
    @ExcelProperty(value = "备注")
    private String remark;

    // 辅助字段
    @ExcelIgnore
    private String billMonth;
    @ExcelIgnore
    private Long storeId;
    @ExcelIgnore
    private String uuid;

    public static Map<String, String> getKeyMap(){
        Map<String, String> map = new HashMap<>();
        map.put("店铺ID", "storeId");
        map.put("结算时间", "settlementTime");
        map.put("订单号", "orderNo");
        map.put("子订单号", "subOrderNo");
        map.put("结算金额", "settlementPrice");
        map.put("结算账户", "settlementAccount");
        map.put("结算单类型", "settlementType");
        map.put("有结算前退款", "settlementRefund");
        map.put("下单时间", "orderTime");
        map.put("商品ID", "productId");
        map.put("商品数量", "quantity");
        map.put("业务类型", "businessType");
        map.put("订单类型", "orderType");
        map.put("订单总价", "orderAmount");
        map.put("商品总价", "productAmount");
        map.put("运费", "transportFee");
        map.put("店铺劵", "preferential");
        map.put("结算前退款金额", "settlementRefundAmount");
        map.put("平台补贴", "preformSubsidy");
        map.put("达人补贴", "drSubsidy");
        map.put("抖音支付补贴", "dySubsidy");
        map.put("抖音月付营销补贴", "dyMonthSubsidy");
        map.put("银行补贴", "bankSubsidy");
        map.put("以旧换新抵扣", "deduction");
        map.put("平台补贴运费", "platformSubsidyFee");
        map.put("用户实付", "buyAmount");
        map.put("收入合计", "reiceveAmount");
        map.put("平台服务费", "serviceAmount");
        map.put("达人佣金", "commission");
        map.put("服务商佣金", "carrierCommission");
        map.put("渠道分成", "channelFee");
        map.put("招商服务费", "investmentServiceFee");
        map.put("站外推广费", "promotionFee");
        map.put("其他分成", "otherFee");
        map.put("其他分成说明", "otherFeeRemark");
        map.put("支出合计", "payAmount");
        map.put("是否免佣", "noCommission");
        map.put("免佣金额", "noCommissionAmount");
        map.put("备注", "remark");
        return map;
    }
}
